<?php
/**
 * 総評コンポーネントデータマッパモジュール
 */
require_once APPLICATION_PATH . '/models/GeneralComment/xml/GeneralCommentXml.php';
require_once APPLICATION_PATH . '/models/HttpRequest/HttpRequestController.php';
require_once 'Request/Request.php';

/**
 * 総評コンポーネントデータマッパクラス
 * @author hariushi
 * @link https://www.evernote.com/view/e7327a0d-6e41-4949-9bc7-e2fc27d9e726?locale=ja#b=90ccea2f-37a9-463f-89cf-099ea98d1d1f&n=e7327a0d-6e41-4949-9bc7-e2fc27d9e726
 */
class Components_GeneralComment_Mapper extends Models_GeneralComment_Xml
{
	const MESSAGE_NO_GAMEID = 'HTTPリクエストにゲームＩＤが設定されていません。';
	const MESSAGE_NO_GAMEID_NO_SAVE = 'ゲームＩＤが設定されていないので保存できませんでした。';

	protected $_Message;

	/**
	 * コンストラクタ
	 */
	public function __construct()
	{
		$sKey = HttpRequest::GAME_ID;
		$ID = Lib_Request::get($sKey);
		parent::__construct($ID);
		if ( empty($this->_ID) )
		{
			$this->_Message = self::MESSAGE_NO_GAMEID;
		}
	}

	/**
	 * 保存
	 */
	public function save()
	{
		if (empty($this->_ID)){
			$this->_Message = self::MESSAGE_NO_GAMEID_NO_SAVE;
			return FALSE;
		}
		$Comment = Lib_Request::get(Models_HttpRequest_Controller::GENERAL_COMMENT_TEXT);
		$Writer = Lib_Request::get(Models_HttpRequest_Controller::GENERAL_COMMENT_WRITER);
		$this->modify($Comment, $Writer);
		$this->saveToFile();
	}

	/**
	 * 異常メッセージ取得
	 */
	public function getMessage()
	{
		return $this->_Message;
	}
}